{
 "cells": [
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": [
    "%env LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1\n",
    "%env LLM_API_KEY=sk-替换为自己的Key"
   ],
   "id": "2524354a1ed7dcf3"
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "37909249-0339-43f3-89d0-04d37b24df84",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:19.753086Z",
     "iopub.status.busy": "2025-03-03T10:26:19.752940Z",
     "iopub.status.idle": "2025-03-03T10:26:19.756406Z",
     "shell.execute_reply": "2025-03-03T10:26:19.756076Z",
     "shell.execute_reply.started": "2025-03-03T10:26:19.753071Z"
    }
   },
   "outputs": [],
   "source": [
    "%%capture --no-stderr\n",
    "!pip install igraph gritlm langchain langchain-community langchain-openai langchain_chroma pypdf sentence_transformers shutil openpyxl FlagEmbedding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "fb4f4add-d8a8-4151-8ba3-9c9fd61d887e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:19.757308Z",
     "iopub.status.busy": "2025-03-03T10:26:19.757062Z",
     "iopub.status.idle": "2025-03-03T10:26:19.769633Z",
     "shell.execute_reply": "2025-03-03T10:26:19.769097Z",
     "shell.execute_reply.started": "2025-03-03T10:26:19.757294Z"
    }
   },
   "outputs": [],
   "source": [
    "import sys"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "887f1089-4dbf-4319-a362-616b64a6ebdc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:19.770352Z",
     "iopub.status.busy": "2025-03-03T10:26:19.770191Z",
     "iopub.status.idle": "2025-03-03T10:26:19.775614Z",
     "shell.execute_reply": "2025-03-03T10:26:19.775007Z",
     "shell.execute_reply.started": "2025-03-03T10:26:19.770336Z"
    }
   },
   "outputs": [],
   "source": "sys.path.append(\"HippoRAG/src\")"
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a7ea4500-698b-4036-919f-ced6ee1e886d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:19.776260Z",
     "iopub.status.busy": "2025-03-03T10:26:19.776087Z",
     "iopub.status.idle": "2025-03-03T10:26:19.782040Z",
     "shell.execute_reply": "2025-03-03T10:26:19.781424Z",
     "shell.execute_reply.started": "2025-03-03T10:26:19.776243Z"
    }
   },
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "expr_version = 'new_arch_v2_hipporag'\n",
    "\n",
    "preprocess_output_dir = os.path.join(os.path.pardir, 'outputs', 'v1_20240713')\n",
    "expr_dir = os.path.join(os.path.pardir, 'experiments', expr_version)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa08e039-aa06-4d5a-8088-70273bb85780",
   "metadata": {},
   "source": [
    "# HippoRAG探索"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bcb52044-e572-45ac-a8a3-1b75df728b71",
   "metadata": {},
   "source": [
    "## HuggingFace Embedding实现"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "00e7fb39-95d3-4d8a-838c-e1fc6b54e787",
   "metadata": {},
   "source": [
    "### HipppoRAG中增加的Embedding类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "95cc5486-9753-41ef-b441-ad27bdf54ef8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:19.784078Z",
     "iopub.status.busy": "2025-03-03T10:26:19.783853Z",
     "iopub.status.idle": "2025-03-03T10:26:22.888197Z",
     "shell.execute_reply": "2025-03-03T10:26:22.887681Z",
     "shell.execute_reply.started": "2025-03-03T10:26:19.784057Z"
    }
   },
   "outputs": [],
   "source": [
    "from hipporag.embedding_model import _get_embedding_model_class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "52ad3912-5296-4761-837d-528cea437596",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:22.889037Z",
     "iopub.status.busy": "2025-03-03T10:26:22.888799Z",
     "iopub.status.idle": "2025-03-03T10:26:25.045271Z",
     "shell.execute_reply": "2025-03-03T10:26:25.044736Z",
     "shell.execute_reply.started": "2025-03-03T10:26:22.889023Z"
    }
   },
   "outputs": [],
   "source": [
    "embedding_model_name = 'BAAI/bge-large-zh-v1.5'\n",
    "model_cls = _get_embedding_model_class(embedding_model_name)\n",
    "embed_model = model_cls(embedding_model_name=embedding_model_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d9b27b95-1db0-429b-a96e-943d0fbb2681",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.046236Z",
     "iopub.status.busy": "2025-03-03T10:26:25.045813Z",
     "iopub.status.idle": "2025-03-03T10:26:25.145585Z",
     "shell.execute_reply": "2025-03-03T10:26:25.145074Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.046221Z"
    }
   },
   "outputs": [],
   "source": [
    "sentences = [\"样例数据-1\", \"样例数据-2\"]\n",
    "\n",
    "res = embed_model.batch_encode(sentences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "181e09f8-3cf6-457e-b05f-d5ab4af67b8a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.146267Z",
     "iopub.status.busy": "2025-03-03T10:26:25.146129Z",
     "iopub.status.idle": "2025-03-03T10:26:25.150666Z",
     "shell.execute_reply": "2025-03-03T10:26:25.150349Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.146254Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.00148104,  0.01648012, -0.02814503, ..., -0.03090635,\n",
       "         0.02966619, -0.03266429],\n",
       "       [ 0.01508202,  0.00414566, -0.0156807 , ..., -0.02809874,\n",
       "         0.04084164, -0.02509875]], dtype=float32)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b462014a-bade-4638-96bb-8d4b0ac92798",
   "metadata": {},
   "source": [
    "### BGE官方代码结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "087a8a73-0938-4c09-bc98-5206e554863f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.151253Z",
     "iopub.status.busy": "2025-03-03T10:26:25.151129Z",
     "iopub.status.idle": "2025-03-03T10:26:25.326361Z",
     "shell.execute_reply": "2025-03-03T10:26:25.325928Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.151241Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Asking to truncate to max_length but no maximum length is provided and the model has no predefined maximum length. Default to no truncation.\n"
     ]
    }
   ],
   "source": [
    "from transformers import AutoTokenizer, AutoModel\n",
    "import torch\n",
    "# Sentences we want sentence embeddings for\n",
    "sentences = [\"样例数据-1\", \"样例数据-2\"]\n",
    "\n",
    "# Load model from HuggingFace Hub\n",
    "tokenizer = AutoTokenizer.from_pretrained(embedding_model_name)\n",
    "model = AutoModel.from_pretrained(embedding_model_name)\n",
    "model.eval()\n",
    "\n",
    "# Tokenize sentences\n",
    "encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')\n",
    "# for s2p(short query to long passage) retrieval task, add an instruction to query (not add instruction for passages)\n",
    "# encoded_input = tokenizer([instruction + q for q in queries], padding=True, truncation=True, return_tensors='pt')\n",
    "\n",
    "# Compute token embeddings\n",
    "with torch.no_grad():\n",
    "    model_output = model(**encoded_input)\n",
    "    # Perform pooling. In this case, cls pooling.\n",
    "    sentence_embeddings = model_output[0][:, 0]\n",
    "# normalize embeddings\n",
    "sentence_embeddings = torch.nn.functional.normalize(sentence_embeddings, p=2, dim=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "38219b30-9e08-4b49-b9df-bbaae6323470",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.327208Z",
     "iopub.status.busy": "2025-03-03T10:26:25.326956Z",
     "iopub.status.idle": "2025-03-03T10:26:25.330092Z",
     "shell.execute_reply": "2025-03-03T10:26:25.329754Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.327194Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.00148104,  0.01648016, -0.02814508, ..., -0.03090638,\n",
       "         0.02966617, -0.03266425],\n",
       "       [ 0.01508206,  0.00414571, -0.01568076, ..., -0.02809875,\n",
       "         0.04084163, -0.02509879]], dtype=float32)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sentence_embeddings.numpy()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9cb0c4f2-ff3d-426a-930f-81bd228f2b91",
   "metadata": {},
   "source": [
    "可以看出，为HippoRAG实现的Embedding模型类结果，与[BGE官方示例代码](https://huggingface.co/BAAI/bge-large-zh-v1.5)的结果是一致的"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "141e658f-3257-4adb-9555-5f8e24fb73d9",
   "metadata": {},
   "source": [
    "## 整体流程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6fb02cfa-3d4e-49c9-89c0-0caca24405e7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.330854Z",
     "iopub.status.busy": "2025-03-03T10:26:25.330617Z",
     "iopub.status.idle": "2025-03-03T10:26:25.342659Z",
     "shell.execute_reply": "2025-03-03T10:26:25.342223Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.330841Z"
    }
   },
   "outputs": [],
   "source": [
    "llm_model_name = 'qwen2:7b-instruct'\n",
    "embedding_model_name = 'BAAI/bge-large-zh-v1.5'\n",
    "llm_base_url='http://localhost:11434/v1'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "27062898-2f7c-4f9e-9811-98eeb5b25eeb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.343267Z",
     "iopub.status.busy": "2025-03-03T10:26:25.343111Z",
     "iopub.status.idle": "2025-03-03T10:26:25.860292Z",
     "shell.execute_reply": "2025-03-03T10:26:25.859821Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.343255Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/DataScience/Code/Notebooks/Project/weixin_langchain2/new_arch/HippoRAG/src/hipporag/HippoRAG.py:162: RuntimeWarning: Could not add vertex ids, there is already an 'id' vertex attribute. at src/io/graphml.c:488\n",
      "  preloaded_graph = ig.Graph.Read_GraphML(self._graphml_xml_file)\n"
     ]
    }
   ],
   "source": [
    "from hipporag import HippoRAG\n",
    "\n",
    "save_dir = 'outputs'# Define save directory for HippoRAG objects (each LLM/Embedding model combination will create a new subdirectory)\n",
    "\n",
    "#Startup a HippoRAG instance\n",
    "hipporag = HippoRAG(\n",
    "    save_dir=save_dir, \n",
    "    llm_model_name=llm_model_name,\n",
    "    embedding_model_name=embedding_model_name,\n",
    "    llm_base_url=llm_base_url\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3cd840fc-9c98-4b2f-9648-d386c5f71683",
   "metadata": {},
   "source": [
    "以下是HippoRAG官方示例代码，此处不再执行，直接执行我们数据集上的结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "58bd425c-eb8e-48b3-b896-0445b4637fe1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.861077Z",
     "iopub.status.busy": "2025-03-03T10:26:25.860887Z",
     "iopub.status.idle": "2025-03-03T10:26:25.864622Z",
     "shell.execute_reply": "2025-03-03T10:26:25.864188Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.861064Z"
    }
   },
   "outputs": [],
   "source": [
    "# # Prepare datasets and evaluation\n",
    "# docs = [\n",
    "#     \"Oliver Badman is a politician.\",\n",
    "#     \"George Rankin is a politician.\",\n",
    "#     \"Thomas Marwick is a politician.\",\n",
    "#     \"Cinderella attended the royal ball.\",\n",
    "#     \"The prince used the lost glass slipper to search the kingdom.\",\n",
    "#     \"When the slipper fit perfectly, Cinderella was reunited with the prince.\",\n",
    "#     \"Erik Hort's birthplace is Montebello.\",\n",
    "#     \"Marina is bom in Minsk.\",\n",
    "#     \"Montebello is a part of Rockland County.\"\n",
    "# ]\n",
    "\n",
    "# #Run indexing\n",
    "# hipporag.index(docs=docs)\n",
    "\n",
    "# #Separate Retrieval & QA\n",
    "# queries = [\n",
    "#     \"What is George Rankin's occupation?\",\n",
    "#     \"How did Cinderella reach her happy ending?\",\n",
    "#     \"What county is Erik Hort's birthplace a part of?\"\n",
    "# ]\n",
    "\n",
    "# retrieval_results = hipporag.retrieve(queries=queries, num_to_retrieve=2)\n",
    "# retrieval_results数据结构：\n",
    "# [QuerySolution(question=\"What is George Rankin's occupation?\", docs=['George Rankin is a politician.', 'Oliver Badman is a politician.'], doc_scores=array([0.10307422, 0.03145265]), answer='Politician.', gold_answers=None, gold_docs=None)\n",
    "\n",
    "# qa_results = hipporag.rag_qa(retrieval_results)\n",
    "# qa_results数据结构：\n",
    "# [[QuerySolution(question=\"What is George Rankin's occupation?\", docs=['George Rankin is a politician.', 'Oliver Badman is a politician.', 'Thomas Marwick is a politician.', 'Cinderella attended the royal ball.', 'When the slipper fit perfectly, Cinderella was reunited with the prince.', 'The prince used the lost glass slipper to search the kingdom.', \"Erik Hort's birthplace is Montebello.\", 'Montebello is a part of Rockland County.', 'Marina is bom in Minsk.'], doc_scores=array([0.10307422, 0.03145265, 0.03004852, 0.00494754, 0.00404149, 0.0011504 , 0.00066549, 0.00031181, 0.        ]), answer='politician', gold_answers=['Politician'], gold_docs=['George Rankin is a politician.'])], \n",
    "#  [retrieval_doc], \n",
    "#  [{'prompt_tokens': 814, 'completion_tokens': 13, 'finish_reason': 'stop'}]\n",
    "# ]\n",
    "# 提取答案\n",
    "# qa_results[0][0].answer, qa_results[0][1].answer, qa_results[0][2].answer\n",
    "\n",
    "\n",
    "# #Combined Retrieval & QA\n",
    "# rag_results = hipporag.rag_qa(queries=queries)\n",
    "\n",
    "# #For Evaluation\n",
    "# answers = [\n",
    "#     [\"Politician\"],\n",
    "#     [\"By going to the ball.\"],\n",
    "#     [\"Rockland County\"]\n",
    "# ]\n",
    "\n",
    "# gold_docs = [\n",
    "#     [\"George Rankin is a politician.\"],\n",
    "#     [\"Cinderella attended the royal ball.\",\n",
    "#     \"The prince used the lost glass slipper to search the kingdom.\",\n",
    "#     \"When the slipper fit perfectly, Cinderella was reunited with the prince.\"],\n",
    "#     [\"Erik Hort's birthplace is Montebello.\",\n",
    "#     \"Montebello is a part of Rockland County.\"]\n",
    "# ]\n",
    "\n",
    "# rag_results = hipporag.rag_qa(queries=queries, \n",
    "#                               gold_docs=gold_docs,\n",
    "#                               gold_answers=answers)\n",
    "# rag_results数据结构\n",
    "# [[QuerySolution(question=\"What is George Rankin's occupation?\", docs=['George Rankin is a politician.', 'Oliver Badman is a politician.', 'Thomas Marwick is a politician.', 'Cinderella attended the royal ball.', 'When the slipper fit perfectly, Cinderella was reunited with the prince.', 'The prince used the lost glass slipper to search the kingdom.', \"Erik Hort's birthplace is Montebello.\", 'Montebello is a part of Rockland County.', 'Marina is bom in Minsk.'], doc_scores=array([0.10307422, 0.03145265, 0.03004852, 0.00494754, 0.00404149, 0.0011504 , 0.00066549, 0.00031181, 0.        ]), answer='politician', gold_answers=['Politician'], gold_docs=['George Rankin is a politician.'])], \n",
    "#  [retrieval_doc], \n",
    "#  [{'prompt_tokens': 814, 'completion_tokens': 13, 'finish_reason': 'stop'}], \n",
    "#  {\n",
    "#      'Recall@1': 0.6111,\n",
    "#      'Recall@2': 0.8889,\n",
    "#      'Recall@5': 1.0,\n",
    "#      'Recall@10': 1.0,\n",
    "#      'Recall@20': 1.0,\n",
    "#      'Recall@30': 1.0,\n",
    "#      'Recall@50': 1.0,\n",
    "#      'Recall@100': 1.0,\n",
    "#      'Recall@150': 1.0,\n",
    "#      'Recall@200': 1.0\n",
    "#  },\n",
    "#  {'ExactMatch': 0.6667, 'F1': 0.6667}\n",
    "# ]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1787e5b6-5415-4144-9c4f-83ba3cb6b4ee",
   "metadata": {},
   "source": [
    "### 加载文档"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "571038ff-92db-4e21-8dcb-8abffecfb335",
   "metadata": {},
   "source": [
    "#### 读取文档"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9ec45a48-6326-438f-90ab-83ea3c23a6de",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:25.866283Z",
     "iopub.status.busy": "2025-03-03T10:26:25.866159Z",
     "iopub.status.idle": "2025-03-03T10:26:27.308305Z",
     "shell.execute_reply": "2025-03-03T10:26:27.307839Z",
     "shell.execute_reply.started": "2025-03-03T10:26:25.866271Z"
    }
   },
   "outputs": [],
   "source": [
    "from langchain_community.document_loaders import PyPDFLoader\n",
    "import pandas as pd\n",
    "\n",
    "loader = PyPDFLoader(os.path.join(os.path.pardir, 'data', '2024全球经济金融展望报告.pdf'))\n",
    "documents = loader.load()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d90077dc-7eff-400c-890a-920ae89f5f6a",
   "metadata": {},
   "source": [
    "#### 文档切分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "1478f371-fbd8-4496-af5d-98a60cca4140",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.308994Z",
     "iopub.status.busy": "2025-03-03T10:26:27.308867Z",
     "iopub.status.idle": "2025-03-03T10:26:27.316696Z",
     "shell.execute_reply": "2025-03-03T10:26:27.316238Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.308981Z"
    }
   },
   "outputs": [],
   "source": [
    "from uuid import uuid4\n",
    "import os\n",
    "import pickle\n",
    "\n",
    "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
    "\n",
    "def split_docs(documents, filepath, chunk_size=400, chunk_overlap=40, seperators=['\\n\\n\\n', '\\n\\n'], force_split=False):\n",
    "    if os.path.exists(filepath) and not force_split:\n",
    "        print('found cache, restoring...')\n",
    "        return pickle.load(open(filepath, 'rb'))\n",
    "\n",
    "    splitter = RecursiveCharacterTextSplitter(\n",
    "        chunk_size=chunk_size,\n",
    "        chunk_overlap=chunk_overlap,\n",
    "        separators=seperators\n",
    "    )\n",
    "    split_docs = splitter.split_documents(documents)\n",
    "    for chunk in split_docs:\n",
    "        chunk.metadata['uuid'] = str(uuid4())\n",
    "\n",
    "    pickle.dump(split_docs, open(filepath, 'wb'))\n",
    "\n",
    "    return split_docs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "bc6ffc9d-9a7b-4972-af63-8e44ee959f12",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.317498Z",
     "iopub.status.busy": "2025-03-03T10:26:27.317255Z",
     "iopub.status.idle": "2025-03-03T10:26:27.325431Z",
     "shell.execute_reply": "2025-03-03T10:26:27.325095Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.317485Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "found cache, restoring...\n"
     ]
    }
   ],
   "source": [
    "splitted_docs = split_docs(documents, os.path.join(preprocess_output_dir, 'split_docs.pkl'), chunk_size=500, chunk_overlap=50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3141586-c45c-4c93-9f8c-03e3dbc1d0db",
   "metadata": {},
   "source": [
    "### 检索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e6b487dd-7495-4b0d-9f02-cbba4839ec20",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.326070Z",
     "iopub.status.busy": "2025-03-03T10:26:27.325896Z",
     "iopub.status.idle": "2025-03-03T10:26:27.329707Z",
     "shell.execute_reply": "2025-03-03T10:26:27.329302Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.326058Z"
    }
   },
   "outputs": [],
   "source": [
    "docs = [\n",
    "    doc.page_content for doc in splitted_docs\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "d7ba119b-0d63-4037-885a-e8557c9c0a88",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.330553Z",
     "iopub.status.busy": "2025-03-03T10:26:27.330426Z",
     "iopub.status.idle": "2025-03-03T10:26:27.336707Z",
     "shell.execute_reply": "2025-03-03T10:26:27.336338Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.330542Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "52"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(docs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "8ada89e0-cfd7-4052-8f87-3184d04329f2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.337397Z",
     "iopub.status.busy": "2025-03-03T10:26:27.337133Z",
     "iopub.status.idle": "2025-03-03T10:26:27.555420Z",
     "shell.execute_reply": "2025-03-03T10:26:27.554137Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.337384Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "61it [00:00, 13021.15it/s]\n",
      "61it [00:00, 523215.84it/s]\n"
     ]
    }
   ],
   "source": [
    "hipporag.index(docs=docs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "f421528e-86cb-44e3-bc4c-386de755603e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.557210Z",
     "iopub.status.busy": "2025-03-03T10:26:27.556668Z",
     "iopub.status.idle": "2025-03-03T10:26:27.676282Z",
     "shell.execute_reply": "2025-03-03T10:26:27.675796Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.557171Z"
    }
   },
   "outputs": [],
   "source": [
    "qa_df = pd.read_excel(os.path.join(preprocess_output_dir, 'question_answer.xlsx'))\n",
    "test_df = qa_df[(qa_df['dataset'] == 'test') & (qa_df['qa_type'] == 'detailed')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "1b587f78-3795-4f79-b67d-1ee037732c94",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:26:27.677098Z",
     "iopub.status.busy": "2025-03-03T10:26:27.676873Z",
     "iopub.status.idle": "2025-03-03T10:26:27.679641Z",
     "shell.execute_reply": "2025-03-03T10:26:27.679219Z",
     "shell.execute_reply.started": "2025-03-03T10:26:27.677069Z"
    }
   },
   "outputs": [],
   "source": [
    "doc2uuid = {\n",
    "    doc.page_content: doc.metadata['uuid'] for doc in splitted_docs\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "d393c921-f9d0-40ca-9fc3-e5c132ef13fa",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:29:43.651678Z",
     "iopub.status.busy": "2025-03-03T10:29:43.651317Z",
     "iopub.status.idle": "2025-03-03T10:30:36.173485Z",
     "shell.execute_reply": "2025-03-03T10:30:36.173131Z",
     "shell.execute_reply.started": "2025-03-03T10:29:43.651646Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8b28ca54c86a421a97a787822d25e853",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/8 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.04it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  9.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.37it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.59it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.54it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  9.08it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.03it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  7.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.95it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.31it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.55it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.35it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.93it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.62it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.55it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.41it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.84it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.84it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.14it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.45it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.11it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.75it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.95it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.69it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.39it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.48it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.40it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.24it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.71it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  9.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.63it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.24it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.24it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.93it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.32it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.65it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.69it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.95it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.73it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.24it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.40it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.57it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.08it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.29it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.92it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.11it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.03it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.28it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.29it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.17it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.63it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.92it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.94it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.09it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.17it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.46it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.76it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.35it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.51it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.03it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.51it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.39it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.39it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.43it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.46it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.21it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.17it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.99it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.47it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.45it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.69it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.37it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.20it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.29it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.11it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.72it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.41it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.11it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.64it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.63it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.14it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.69it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.94it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.11it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.33it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.37it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.21it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.03it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.17it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.40it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.45it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.87it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.35it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.45it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.70it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.28it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.57it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.94it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.63it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.58it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.35it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.29it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.65it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.37it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.69it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.73it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.50it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.03it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.78it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.65it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.46it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.43it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.95it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.73it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.39it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.92it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.47it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.42it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.72it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.65it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.41it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.93it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.03it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.62it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.89it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.32it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.17it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.14it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.14it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.51it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.09it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.91it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.92it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.31it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.63it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.95it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.64it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.64it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.47it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.47it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.29it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.83it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.63it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.06it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.09it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.62it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.03it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.65it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.42it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.89it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.62it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.24it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.41it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.89it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.09it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.57it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.39it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.10it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.93it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.95it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.40it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.35it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.75it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.43it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.73it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.69it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.43it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.11it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.75it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.47it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.78it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.72it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.29it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.28it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.99it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.52it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.55it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.28it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.68it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.43it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.48it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.49it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.84it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.34it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.57it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.51it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.38it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.87it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.09it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.70it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.84it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.97it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.09it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.37it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.02it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.67it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.45it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.76it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.81it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.55it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.31it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.78it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.72it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.21it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.56it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.53it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.51it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.60it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.44it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.38it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.48it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.16it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.59it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.48it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.40it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.27it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.94it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.28it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.78it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.94it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.61it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.38it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.00it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.92it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.82it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  7.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.79it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.76it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.47it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.22it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.74it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.65it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.23it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.64it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.86it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.19it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.28it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.91it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.25it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.43it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.38it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.88it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.15it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.96it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.24it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.20it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.33it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.80it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.08it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.85it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.37it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.50it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.58it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.89it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.72it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.94it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.55it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.57it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.24it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  9.69it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.39it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.76it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.36it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.30it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.92it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.21it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.36it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.51it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.05it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.50it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.35it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.90it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.66it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.72it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.07it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 18.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.16it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  7.81it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.82it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.62it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  9.51it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.11it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  9.32it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 13.98it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.01it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.26it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.45it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.43it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.82it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.30it/s]\u001B[A\n",
      "\n",
      "Retrieving:   0%|                                                                                                                                                                                                | 0/1 [00:00<?, ?it/s]\u001B[A\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.14it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.14it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.54it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.95it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.62it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.04it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.18it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.55it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.71it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.10it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.13it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.24it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.89it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.42it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 15.17it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 14.77it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.33it/s]\u001B[A\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.12it/s]\u001B[A\n",
      "\n",
      "Retrieving: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 16.99it/s]\u001B[A\n"
     ]
    }
   ],
   "source": [
    "from tqdm.auto import tqdm\n",
    "\n",
    "top_k_arr=list(range(1, 9))\n",
    "hit_stat_data = []\n",
    "\n",
    "for k in tqdm(top_k_arr):\n",
    "    for idx, row in test_df.iterrows():\n",
    "        question = row['question']\n",
    "        true_uuid = row['uuid']\n",
    "        # chunks = retrieve_fn(question, k=k)\n",
    "        # chunks = vector_db.similarity_search(question, k=k)\n",
    "        retrieval_results = hipporag.retrieve(queries=[question], num_to_retrieve=k)\n",
    "        retrieved_uuids = [doc2uuid[doc] for doc in retrieval_results[0].docs]\n",
    "\n",
    "        hit_stat_data.append({\n",
    "            'question': question,\n",
    "            'top_k': k,\n",
    "            'hit': int(true_uuid in retrieved_uuids),\n",
    "            'retrieved_chunks': len(retrieval_results)\n",
    "        })\n",
    "hit_stat_df = pd.DataFrame(hit_stat_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "5363c0ed-db29-4d0d-a45b-48b0878e1c3e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:30:41.662495Z",
     "iopub.status.busy": "2025-03-03T10:30:41.661678Z",
     "iopub.status.idle": "2025-03-03T10:30:41.671468Z",
     "shell.execute_reply": "2025-03-03T10:30:41.671058Z",
     "shell.execute_reply.started": "2025-03-03T10:30:41.662424Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>top_k</th>\n",
       "      <th>hit_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0.268817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>0.365591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>0.451613</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>0.591398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0.645161</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>0.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>0.709677</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>0.752688</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   top_k  hit_rate\n",
       "0      1  0.268817\n",
       "1      2  0.365591\n",
       "2      3  0.451613\n",
       "3      4  0.591398\n",
       "4      5  0.645161\n",
       "5      6  0.666667\n",
       "6      7  0.709677\n",
       "7      8  0.752688"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hit_stat_df.groupby(['top_k'])['hit'].mean().reset_index().rename(columns={'hit': 'hit_rate'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "008f3c67-415d-4b95-ac1a-3edfd5ec33ad",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:30:42.237813Z",
     "iopub.status.busy": "2025-03-03T10:30:42.237039Z",
     "iopub.status.idle": "2025-03-03T10:30:42.362288Z",
     "shell.execute_reply": "2025-03-03T10:30:42.361789Z",
     "shell.execute_reply.started": "2025-03-03T10:30:42.237745Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='top_k', ylabel='hit'>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGxCAYAAACeKZf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmQ0lEQVR4nO3df1SUdd7/8dcwyiCpmCGgRLJqK2IKLQSL3qVbtNzW8c77vrebOhXsVNzne+cU7Xzrq2RBmjq2FeExj6RJ9q11te3u194Z/Zhv2LrRYpi7upXVbgqlA3J2A6OCbWa+f3SalhUMCuYaPjwf51znNB+ua+Z9raft6TXXDLZgMBgUAACAIaKsHgAAAGAwETcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjDLK6gHCLRAI6OjRoxo3bpxsNpvV4wAAgH4IBoM6ceKEpkyZoqioU1+bGXFxc/ToUaWkpFg9BgAA+Baam5t15plnnnKfERc348aNk/Tl/zjjx4+3eBoAANAfHR0dSklJCf13/FRGXNx89VbU+PHjiRsAAIaZ/txSwg3FAADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMMsrqAQAAwOC48847rR5hUHzX8+DKDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjjLJ6AEnauHGj7rnnHvl8PmVkZGjDhg3Kycnpdd+FCxdq9+7dJ61fcskleu6554Z6VADAMPD2mv9n9QiDYtaKC60eYViy/MrNzp075Xa7VVFRoX379ikjI0MFBQVqbW3tdf8nn3xSx44dC20HDx6U3W7X5ZdfHubJAQBAJLI8biorK1VSUiKn06n09HRVV1crNjZWNTU1ve4/ceJEJSUlhbaXXnpJsbGxxA0AAJBkcdx0d3ersbFR+fn5obWoqCjl5+ervr6+X8+xdetWXXHFFTrttNN6/XlXV5c6Ojp6bAAAwFyWxk1bW5v8fr8SExN7rCcmJsrn833j8Q0NDTp48KCuv/76PvfxeDyKi4sLbSkpKd95bgAAELksf1vqu9i6davmzJnT583HklRWVqb29vbQ1tzcHMYJAQBAuFn6aan4+HjZ7Xa1tLT0WG9paVFSUtIpj+3s7NSOHTu0atWqU+7ncDjkcDi+86wAAGB4sPTKTXR0tLKysuT1ekNrgUBAXq9XeXl5pzz2V7/6lbq6unT11VcP9ZgAAGAYsfx7btxut4qLi5Wdna2cnBxVVVWps7NTTqdTklRUVKTk5GR5PJ4ex23dulVLlizRGWecYcXYAAAgQlkeN4WFhTp+/LjKy8vl8/mUmZmp2tra0E3GTU1NiorqeYHp0KFD2rNnj1588UUrRgYAABHM8riRJJfLJZfL1evP6urqTlqbOXOmgsHgEE8FAACGo2H9aSkAAIB/RNwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjBIR31AMABgaa67+idUjDIoVjz1h9QgYRrhyAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIzCNxQDGBEe+N+/tnqEQeG6b7HVIwARjys3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjWB43GzduVGpqqmJiYpSbm6uGhoZT7v/xxx9r6dKlmjx5shwOh77//e9r165dYZoWAABEulFWvvjOnTvldrtVXV2t3NxcVVVVqaCgQIcOHVJCQsJJ+3d3d+viiy9WQkKCnnjiCSUnJ+vIkSOaMGFC+IcHAAARydK4qaysVElJiZxOpySpurpazz33nGpqarR8+fKT9q+pqdFf/vIXvfbaaxo9erQkKTU1NZwjAwCACGfZ21Ld3d1qbGxUfn7+18NERSk/P1/19fW9HvPss88qLy9PS5cuVWJios455xytXbtWfr+/z9fp6upSR0dHjw0AAJjLsrhpa2uT3+9XYmJij/XExET5fL5ej/nzn/+sJ554Qn6/X7t27dIdd9yh++67T6tXr+7zdTwej+Li4kJbSkrKoJ4HAACILJbfUDwQgUBACQkJ2rx5s7KyslRYWKgVK1aourq6z2PKysrU3t4e2pqbm8M4MQAACDfL7rmJj4+X3W5XS0tLj/WWlhYlJSX1eszkyZM1evRo2e320NqsWbPk8/nU3d2t6Ojok45xOBxyOByDOzwAAIhYll25iY6OVlZWlrxeb2gtEAjI6/UqLy+v12Pmz5+v999/X4FAILT27rvvavLkyb2GDQAAGHks/bSU2+1WcXGxsrOzlZOTo6qqKnV2doY+PVVUVKTk5GR5PB5J0n/913/pgQceUGlpqW688Ua99957Wrt2rW666SYrTwMYVnZfsMDqEQbFgld3Wz0CgAhladwUFhbq+PHjKi8vl8/nU2Zmpmpra0M3GTc1NSkq6uuLSykpKXrhhRf0s5/9THPnzlVycrJKS0u1bNkyq04BAABEGEvjRpJcLpdcLlevP6urqztpLS8vT6+//voQTwUAAIarYfVpKQAAgG9C3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoERE3GzduVGpqqmJiYpSbm6uGhoY+9922bZtsNluPLSYmJozTAgCASGZ53OzcuVNut1sVFRXat2+fMjIyVFBQoNbW1j6PGT9+vI4dOxbajhw5EsaJAQBAJLM8biorK1VSUiKn06n09HRVV1crNjZWNTU1fR5js9mUlJQU2hITE8M4MQAAiGSWxk13d7caGxuVn58fWouKilJ+fr7q6+v7PO6TTz7R1KlTlZKSossuu0x//OMfwzEuAAAYBiyNm7a2Nvn9/pOuvCQmJsrn8/V6zMyZM1VTU6NnnnlGjz32mAKBgObNm6cPP/yw1/27urrU0dHRYwMAAOay/G2pgcrLy1NRUZEyMzO1YMECPfnkk5o0aZIefPDBXvf3eDyKi4sLbSkpKWGeGAAAhJOlcRMfHy+73a6WlpYe6y0tLUpKSurXc4wePVrnnnuu3n///V5/XlZWpvb29tDW3Nz8necGAACRy9K4iY6OVlZWlrxeb2gtEAjI6/UqLy+vX8/h9/t14MABTZ48udefOxwOjR8/vscGAADMNcrqAdxut4qLi5Wdna2cnBxVVVWps7NTTqdTklRUVKTk5GR5PB5J0qpVq/TDH/5QM2bM0Mcff6x77rlHR44c0fXXX2/laQAAgAhhedwUFhbq+PHjKi8vl8/nU2Zmpmpra0M3GTc1NSkq6usLTH/9619VUlIin8+n008/XVlZWXrttdeUnp5u1SkAAIAIYnncSJLL5ZLL5er1Z3V1dT0e33///br//vvDMBUAABiOht2npQAAAE6FuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYJRRVg8AWGX+hvlWjzAofnvjb60eAQAiClduAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABglIuJm48aNSk1NVUxMjHJzc9XQ0NCv43bs2CGbzaYlS5YM7YAAAGDY+FZxc+GFF+rjjz8+ab2jo0MXXnjhgJ5r586dcrvdqqio0L59+5SRkaGCggK1trae8rjDhw/rlltu0fnnnz+g1wMAAGb7VnFTV1en7u7uk9Y///xz/eY3vxnQc1VWVqqkpEROp1Pp6emqrq5WbGysampq+jzG7/frqquu0sqVKzVt2rQBzw8AAMw1aiA7/+EPfwj981tvvSWfzxd67Pf7VVtbq+Tk5H4/X3d3txobG1VWVhZai4qKUn5+vurr6/s8btWqVUpISNB111034JgCAABmG1DcZGZmymazyWaz9fr205gxY7Rhw4Z+P19bW5v8fr8SExN7rCcmJuqdd97p9Zg9e/Zo69at2r9/f79eo6urS11dXaHHHR0d/Z4PAAAMPwOKmw8++EDBYFDTpk1TQ0ODJk2aFPpZdHS0EhISZLfbB33Ir5w4cULXXHONtmzZovj4+H4d4/F4tHLlyiGbCQAARJYBxc3UqVMlSYFAYFBePD4+Xna7XS0tLT3WW1palJSUdNL+f/rTn3T48GEtXrw4tPbVLKNGjdKhQ4c0ffr0HseUlZXJ7XaHHnd0dCglJWVQ5gcAAJGn33Hz7LPPatGiRRo9erSeffbZU+77L//yL/16zujoaGVlZcnr9YY+zh0IBOT1euVyuU7aPy0tTQcOHOixdvvtt+vEiRNav359r9HicDjkcDj6NQ8AABj++h03S5Yskc/nU0JCwim/V8Zms8nv9/d7ALfbreLiYmVnZysnJ0dVVVXq7OyU0+mUJBUVFSk5OVkej0cxMTE655xzehw/YcIESTppHQAAjEz9jpu/fytqsN6WkqTCwkIdP35c5eXl8vl8yszMVG1tbegm46amJkVFRcR3DQIAgGFgQPfc/D2v1yuv16vW1tYesWOz2bR169YBPZfL5er1bSjpy+/UOZVt27YN6LUAAIDZvlXcrFy5UqtWrVJ2drYmT54sm8022HMBAAB8K98qbqqrq7Vt2zZdc801gz0PAADAd/Ktbmbp7u7WvHnzBnsWAACA7+xbxc3111+v7du3D/YsAAAA31m/35b6+y/CCwQC2rx5s15++WXNnTtXo0eP7rFvZWXl4E0IAAAwAP2OmzfffLPH48zMTEnSwYMHe6xzczEAALBSv+PmlVdeGco5AAAABgXfjgcAAIxC3AAAAKMQNwAAwCjf+tcvwBxNq+ZYPcKgOKv8wDfvBAAwHlduAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUSIibjZu3KjU1FTFxMQoNzdXDQ0Nfe775JNPKjs7WxMmTNBpp52mzMxMPfroo2GcFgAARDLL42bnzp1yu92qqKjQvn37lJGRoYKCArW2tva6/8SJE7VixQrV19frD3/4g5xOp5xOp1544YUwTw4AACKR5XFTWVmpkpISOZ1Opaenq7q6WrGxsaqpqel1/4ULF+pf//VfNWvWLE2fPl2lpaWaO3eu9uzZE+bJAQBAJLI0brq7u9XY2Kj8/PzQWlRUlPLz81VfX/+NxweDQXm9Xh06dEgXXHBBr/t0dXWpo6OjxwYAAMxlady0tbXJ7/crMTGxx3piYqJ8Pl+fx7W3t2vs2LGKjo7WpZdeqg0bNujiiy/udV+Px6O4uLjQlpKSMqjnAAAAIovlb0t9G+PGjdP+/fu1d+9erVmzRm63W3V1db3uW1ZWpvb29tDW3Nwc3mEBAEBYjbLyxePj42W329XS0tJjvaWlRUlJSX0eFxUVpRkzZkiSMjMz9fbbb8vj8WjhwoUn7etwOORwOAZ1bgAAELksvXITHR2trKwseb3e0FogEJDX61VeXl6/nycQCKirq2soRgQAAMOMpVduJMntdqu4uFjZ2dnKyclRVVWVOjs75XQ6JUlFRUVKTk6Wx+OR9OU9NNnZ2Zo+fbq6urq0a9cuPfroo9q0aZOVpwEAACKE5XFTWFio48ePq7y8XD6fT5mZmaqtrQ3dZNzU1KSoqK8vMHV2duqGG27Qhx9+qDFjxigtLU2PPfaYCgsLrToFAAAQQSyPG0lyuVxyuVy9/uwfbxRevXq1Vq9eHYapAADAcDQsPy0FAADQF+IGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFEi4kv8IkXWrf/X6hEGReM9RVaPAACAZbhyAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKBERNxs3blRqaqpiYmKUm5urhoaGPvfdsmWLzj//fJ1++uk6/fTTlZ+ff8r9AQDAyGJ53OzcuVNut1sVFRXat2+fMjIyVFBQoNbW1l73r6ur05VXXqlXXnlF9fX1SklJ0Y9//GN99NFHYZ4cAABEIsvjprKyUiUlJXI6nUpPT1d1dbViY2NVU1PT6/6/+MUvdMMNNygzM1NpaWl66KGHFAgE5PV6wzw5AACIRJbGTXd3txobG5Wfnx9ai4qKUn5+vurr6/v1HJ9++qn+9re/aeLEib3+vKurSx0dHT02AABgLkvjpq2tTX6/X4mJiT3WExMT5fP5+vUcy5Yt05QpU3oE0t/zeDyKi4sLbSkpKd95bgAAELksf1vqu1i3bp127Nihp556SjExMb3uU1ZWpvb29tDW3Nwc5ikBAEA4jbLyxePj42W329XS0tJjvaWlRUlJSac89t5779W6dev08ssva+7cuX3u53A45HA4BmVeAAAQ+Sy9chMdHa2srKweNwN/dXNwXl5en8f9/Oc/11133aXa2lplZ2eHY1QAADBMWHrlRpLcbreKi4uVnZ2tnJwcVVVVqbOzU06nU5JUVFSk5ORkeTweSdLdd9+t8vJybd++XampqaF7c8aOHauxY8dadh4AACAyWB43hYWFOn78uMrLy+Xz+ZSZmana2trQTcZNTU2Kivr6AtOmTZvU3d2tn/zkJz2ep6KiQnfeeWc4RwcAABHI8riRJJfLJZfL1evP6urqejw+fPjw0A8EAACGrWH9aSkAAIB/RNwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKJbHzcaNG5WamqqYmBjl5uaqoaGhz33/+Mc/6t///d+Vmpoqm82mqqqq8A0KAACGBUvjZufOnXK73aqoqNC+ffuUkZGhgoICtba29rr/p59+qmnTpmndunVKSkoK87QAAGA4sDRuKisrVVJSIqfTqfT0dFVXVys2NlY1NTW97n/eeefpnnvu0RVXXCGHwxHmaQEAwHBgWdx0d3ersbFR+fn5Xw8TFaX8/HzV19dbNRYAABjmRln1wm1tbfL7/UpMTOyxnpiYqHfeeWfQXqerq0tdXV2hxx0dHYP23AAAIPJYfkPxUPN4PIqLiwttKSkpVo8EAACGkGVxEx8fL7vdrpaWlh7rLS0tg3qzcFlZmdrb20Nbc3PzoD03AACIPJbFTXR0tLKysuT1ekNrgUBAXq9XeXl5g/Y6DodD48eP77EBAABzWXbPjSS53W4VFxcrOztbOTk5qqqqUmdnp5xOpySpqKhIycnJ8ng8kr68Cfmtt94K/fNHH32k/fv3a+zYsZoxY4Zl5wEAACKHpXFTWFio48ePq7y8XD6fT5mZmaqtrQ3dZNzU1KSoqK8vLh09elTnnntu6PG9996re++9VwsWLFBdXV24xwcAABHI0riRJJfLJZfL1evP/jFYUlNTFQwGwzAVAAAYroz/tBQAABhZiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGiYi42bhxo1JTUxUTE6Pc3Fw1NDSccv9f/epXSktLU0xMjObMmaNdu3aFaVIAABDpLI+bnTt3yu12q6KiQvv27VNGRoYKCgrU2tra6/6vvfaarrzySl133XV68803tWTJEi1ZskQHDx4M8+QAACASWR43lZWVKikpkdPpVHp6uqqrqxUbG6uamppe91+/fr3++Z//WbfeeqtmzZqlu+66Sz/4wQ/0wAMPhHlyAAAQiSyNm+7ubjU2Nio/Pz+0FhUVpfz8fNXX1/d6TH19fY/9JamgoKDP/QEAwMgyysoXb2trk9/vV2JiYo/1xMREvfPOO70e4/P5et3f5/P1un9XV5e6urpCj9vb2yVJHR0dJ+3r7/psQPNHqt7O7VROfO4foknCa6Dn/cVnXwzRJOE10PPu/GJknvdnXZ8O0SThNdDz/vxvfxuiScJroOf9yeedQzRJeA30vP/+v3fDWW/n/dVaMBj8xuMtjZtw8Hg8Wrly5UnrKSkpFkwTHnEb/pfVI1jDE2f1BJaIWzYyz1txI/O8/89GqyewxurHR+aft1ZbPYA11q1b1+fPTpw4obhv+Pff0riJj4+X3W5XS0tLj/WWlhYlJSX1ekxSUtKA9i8rK5Pb7Q49DgQC+stf/qIzzjhDNpvtO57BwHR0dCglJUXNzc0aP358WF/bSpw35z0ScN6c90hg5XkHg0GdOHFCU6ZM+cZ9LY2b6OhoZWVlyev1asmSJZK+jA+v1yuXy9XrMXl5efJ6vbr55ptDay+99JLy8vJ63d/hcMjhcPRYmzBhwmCM/62NHz9+RP3L8BXOe2ThvEcWzntkseq8v+mKzVcsf1vK7XaruLhY2dnZysnJUVVVlTo7O+V0OiVJRUVFSk5OlsfjkSSVlpZqwYIFuu+++3TppZdqx44deuONN7R582YrTwMAAEQIy+OmsLBQx48fV3l5uXw+nzIzM1VbWxu6abipqUlRUV9/qGvevHnavn27br/9dt122206++yz9fTTT+ucc86x6hQAAEAEsTxuJMnlcvX5NlRdXd1Ja5dffrkuv/zyIZ5q8DkcDlVUVJz0NpnpOG/OeyTgvDnvkWC4nLct2J/PVAEAAAwTln9DMQAAwGAibgAAgFGIGwAAYBTiJgxeffVVLV68WFOmTJHNZtPTTz9t9Uhh4fF4dN5552ncuHFKSEjQkiVLdOjQIavHGnKbNm3S3LlzQ98DkZeXp+eff97qscJu3bp1stlsPb6TykR33nmnbDZbjy0tLc3qscLio48+0tVXX60zzjhDY8aM0Zw5c/TGG29YPdaQSk1NPenP22azaenSpVaPNqT8fr/uuOMOfe9739OYMWM0ffp03XXXXf36VQhWiIhPS5mus7NTGRkZuvbaa/Vv//ZvVo8TNrt379bSpUt13nnn6YsvvtBtt92mH//4x3rrrbd02mmnWT3ekDnzzDO1bt06nX322QoGg3rkkUd02WWX6c0339Ts2bOtHi8s9u7dqwcffFBz5861epSwmD17tl5++eXQ41GjzP+/1r/+9a+aP3++fvSjH+n555/XpEmT9N577+n000+3erQhtXfvXvn9X/8+voMHD+riiy8elp/gHYi7775bmzZt0iOPPKLZs2frjTfekNPpVFxcnG666SarxzuJ+f8GRoBFixZp0aJFVo8RdrW1tT0eb9u2TQkJCWpsbNQFF1xg0VRDb/HixT0er1mzRps2bdLrr78+IuLmk08+0VVXXaUtW7Zo9eqR8YtxRo0a1eevgDHV3XffrZSUFD388MOhte9973sWThQekyZN6vF43bp1mj59uhYsWGDRROHx2muv6bLLLtOll14q6csrWL/85S/V0NBg8WS9420phM1Xv5F94sSJFk8SPn6/Xzt27FBnZ2efvyLENEuXLtWll16q/Px8q0cJm/fee09TpkzRtGnTdNVVV6mpqcnqkYbcs88+q+zsbF1++eVKSEjQueeeqy1btlg9Vlh1d3frscce07XXXhv231UYbvPmzZPX69W7774rSfr973+vPXv2ROxf3Llyg7AIBAK6+eabNX/+/BHxbdIHDhxQXl6ePv/8c40dO1ZPPfWU0tPTrR5ryO3YsUP79u3T3r17rR4lbHJzc7Vt2zbNnDlTx44d08qVK3X++efr4MGDGjdunNXjDZk///nP2rRpk9xut2677Tbt3btXN910k6Kjo1VcXGz1eGHx9NNP6+OPP9ZPf/pTq0cZcsuXL1dHR4fS0tJkt9vl9/u1Zs0aXXXVVVaP1iviBmGxdOlSHTx4UHv27LF6lLCYOXOm9u/fr/b2dj3xxBMqLi7W7t27jQ6c5uZmlZaW6qWXXlJMTIzV44TN3//Nde7cucrNzdXUqVP1+OOP67rrrrNwsqEVCASUnZ2ttWvXSpLOPfdcHTx4UNXV1SMmbrZu3apFixb167dUD3ePP/64fvGLX2j79u2aPXu29u/fr5tvvllTpkyJyD9v4gZDzuVy6X/+53/06quv6swzz7R6nLCIjo7WjBkzJElZWVnau3ev1q9frwcffNDiyYZOY2OjWltb9YMf/CC05vf79eqrr+qBBx5QV1eX7Ha7hROGx4QJE/T9739f77//vtWjDKnJkyefFOuzZs3Sf//3f1s0UXgdOXJEL7/8sp588kmrRwmLW2+9VcuXL9cVV1whSZozZ46OHDkij8dD3GBkCQaDuvHGG/XUU0+prq5uRNxs2JdAIKCuri6rxxhSF110kQ4cONBjzel0Ki0tTcuWLRsRYSN9eUP1n/70J11zzTVWjzKk5s+ff9JXO7z77ruaOnWqRROF18MPP6yEhITQDbam+/TTT3v8EmtJstvtCgQCFk10asRNGHzyySc9/hb3wQcfaP/+/Zo4caLOOussCycbWkuXLtX27dv1zDPPaNy4cfL5fJKkuLg4jRkzxuLphk5ZWZkWLVqks846SydOnND27dtVV1enF154werRhtS4ceNOup/qtNNO0xlnnGH0fVa33HKLFi9erKlTp+ro0aOqqKiQ3W7XlVdeafVoQ+pnP/uZ5s2bp7Vr1+o//uM/1NDQoM2bN2vz5s1WjzbkAoGAHn74YRUXF4+Ij/1LX34KdM2aNTrrrLM0e/Zsvfnmm6qsrNS1115r9Wi9C2LIvfLKK0FJJ23FxcVWjzakejtnScGHH37Y6tGG1LXXXhucOnVqMDo6Ojhp0qTgRRddFHzxxRetHssSCxYsCJaWllo9xpAqLCwMTp48ORgdHR1MTk4OFhYWBt9//32rxwqLX//618Fzzjkn6HA4gmlpacHNmzdbPVJYvPDCC0FJwUOHDlk9Sth0dHQES0tLg2eddVYwJiYmOG3atOCKFSuCXV1dVo/WK34rOAAAMArfcwMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDYERLTU1VVVWV1WMAGETEDYCIsXDhQt18881WjwFgmCNuAACAUYgbABHhpz/9qXbv3q3169fLZrPJZrPp8OHD2r17t3JycuRwODR58mQtX75cX3zxRei4hQsXyuVyyeVyKS4uTvHx8brjjjv0bX9t3kMPPaQJEybI6/UO1qkBCDPiBkBEWL9+vfLy8lRSUqJjx47p2LFjGj16tC655BKdd955+v3vf69NmzZp69atWr16dY9jH3nkEY0aNUoNDQ1av369Kisr9dBDDw14hp///Odavny5XnzxRV100UWDdWoAwmyU1QMAgCTFxcUpOjpasbGxSkpKkiStWLFCKSkpeuCBB2Sz2ZSWlqajR49q2bJlKi8vV1TUl38/S0lJ0f333y+bzaaZM2fqwIEDuv/++1VSUtLv11+2bJkeffRR7d69W7Nnzx6ScwQQHly5ARCx3n77beXl5clms4XW5s+fr08++UQffvhhaO2HP/xhj33y8vL03nvvye/39+t17rvvPm3ZskV79uwhbAADEDcARrzzzz9ffr9fjz/+uNWjABgExA2AiBEdHd3jasusWbNUX1/f4+bg3/72txo3bpzOPPPM0Nrvfve7Hs/z+uuv6+yzz5bdbu/X6+bk5Oj555/X2rVrde+9937HswBgNeIGQMRITU3V7373Ox0+fFhtbW264YYb1NzcrBtvvFHvvPOOnnnmGVVUVMjtdofut5GkpqYmud1uHTp0SL/85S+1YcMGlZaWDui1582bp127dmnlypV8qR8wzHFDMYCIccstt6i4uFjp6en67LPP9MEHH2jXrl269dZblZGRoYkTJ+q6667T7bff3uO4oqIiffbZZ8rJyZHdbldpaan+8z//c8Cv/0//9E967rnndMkll8hut+vGG28crFMDEEa24Lf9MggAiAALFy5UZmYmV1sAhPC2FAAAMApxA8BYv/nNbzR27Ng+NwBm4m0pAMb67LPP9NFHH/X58xkzZoRxGgDhQtwAAACj8LYUAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCj/H7FtN4eYQR+4AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "sns.barplot(x='top_k', y='hit', data=hit_stat_df, errorbar=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a55ab44e-e401-4d8d-acae-434925887299",
   "metadata": {},
   "source": [
    "# 生成结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "aac9eb73-7730-4cb0-9ff1-c71f1f88880f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:31:49.912383Z",
     "iopub.status.busy": "2025-03-03T10:31:49.911605Z",
     "iopub.status.idle": "2025-03-03T10:31:49.915645Z",
     "shell.execute_reply": "2025-03-03T10:31:49.915267Z",
     "shell.execute_reply.started": "2025-03-03T10:31:49.912312Z"
    }
   },
   "outputs": [],
   "source": [
    "queries = test_df['question'].values.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "7698aaea-2a75-498d-9df8-321f9702e017",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:45:58.129490Z",
     "iopub.status.busy": "2025-03-03T10:45:58.129059Z",
     "iopub.status.idle": "2025-03-03T10:52:01.417262Z",
     "shell.execute_reply": "2025-03-03T10:52:01.416571Z",
     "shell.execute_reply.started": "2025-03-03T10:45:58.129452Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Retrieving:  12%|█████████████████████▌                                                                                                                                                                | 11/93 [00:00<00:05, 15.73it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"2023\", \"\", \"... \"\", \"gdp        4 9\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"2023\", \"\", \"gdp\"], [\"2023\", \"\", \"gdp        4 9\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Retrieving:  31%|████████████████████████████████████████████████████████▊                                                                                                                             | 29/93 [00:02<00:04, 14.46it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='{\"fact\": [[\"msci\", \"2023...\"], [\"gdp\", \"\", \"imf\"]]', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "{\"fact\": [[\"msci\", \"2023 11 15\", \"41 1\"], [\"gdp\", \"\", \"imf\"]]\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Retrieving: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 93/93 [00:06<00:00, 14.11it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error parsing field fact_after_filter: 1 validation error for Fact\n",
      "  Input should be a valid dictionary or instance of Fact [type=model_type, input_value='无', input_type=str]\n",
      "    For further information visit https://errors.pydantic.dev/2.9/v/model_type.\n",
      "\n",
      "\t\tOn attempting to parse the value\n",
      "```\n",
      "无\n",
      "```\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Collecting QA prompts: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 93/93 [00:00<00:00, 34547.01it/s]\n",
      "QA Reading: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 93/93 [05:56<00:00,  3.83s/it]\n",
      "Extraction Answers from LLM Response: 0it [00:00, ?it/s]Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Error in parsing the answer from the raw LLM QA inference response: list index out of range!\n",
      "Extraction Answers from LLM Response: 93it [00:00, 2335.46it/s]\n"
     ]
    }
   ],
   "source": [
    "retrieval_results = hipporag.retrieve(queries=queries, num_to_retrieve=3)\n",
    "rag_results = hipporag.rag_qa(retrieval_results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "90042163-ba42-4b02-b1aa-6c11a2587314",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T10:52:01.418841Z",
     "iopub.status.busy": "2025-03-03T10:52:01.418576Z",
     "iopub.status.idle": "2025-03-03T10:52:01.422335Z",
     "shell.execute_reply": "2025-03-03T10:52:01.421724Z",
     "shell.execute_reply.started": "2025-03-03T10:52:01.418815Z"
    }
   },
   "outputs": [],
   "source": [
    "answers = [query_solution.answer for query_solution in rag_results[0]]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dfeb1b86-d5b8-413d-8b02-097edd860e9e",
   "metadata": {},
   "source": [
    "# 评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "5392f48b-9b6e-45b5-b13f-67c3b1e66fed",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T11:13:37.599468Z",
     "iopub.status.busy": "2025-03-03T11:13:37.598673Z",
     "iopub.status.idle": "2025-03-03T11:13:37.648622Z",
     "shell.execute_reply": "2025-03-03T11:13:37.647805Z",
     "shell.execute_reply.started": "2025-03-03T11:13:37.599394Z"
    }
   },
   "outputs": [],
   "source": [
    "from langchain_openai import ChatOpenAI\n",
    "import time\n",
    "\n",
    "judge_llm = ChatOpenAI(\n",
    "    api_key=os.environ['LLM_API_KEY'],\n",
    "    base_url=os.environ['LLM_BASE_URL'],\n",
    "    model_name='qwen2-72b-instruct',\n",
    "    temperature=0\n",
    ")\n",
    "\n",
    "def evaluate(prediction_df):\n",
    "    \"\"\"\n",
    "    对预测结果进行打分\n",
    "    :param prediction_df: 预测结果，需要包含问题，参考答案，生成的答案，列名分别为question, ref_answer, gen_answer\n",
    "    :return 打分模型原始返回结果\n",
    "    \"\"\"\n",
    "    prompt_tmpl = \"\"\"\n",
    "你是一个经济学博士，现在我有一系列问题，有一个助手已经对这些问题进行了回答，你需要参照参考答案，评价这个助手的回答是否正确，仅回复“是”或“否”即可，不要带其他描述性内容或无关信息。\n",
    "问题：\n",
    "<question>\n",
    "{{question}}\n",
    "</question>\n",
    "\n",
    "参考答案：\n",
    "<ref_answer>\n",
    "{{ref_answer}}\n",
    "</ref_answer>\n",
    "\n",
    "助手回答：\n",
    "<gen_answer>\n",
    "{{gen_answer}}\n",
    "</gen_answer>\n",
    "请评价：\n",
    "    \"\"\"\n",
    "    results = []\n",
    "\n",
    "    for _, row in tqdm(prediction_df.iterrows(), total=len(prediction_df)):\n",
    "        question = row['question']\n",
    "        ref_answer = row['ref_answer']\n",
    "        gen_answer = row['gen_answer']\n",
    "\n",
    "        prompt = prompt_tmpl.replace('{{question}}', question).replace('{{ref_answer}}', str(ref_answer)).replace('{{gen_answer}}', gen_answer).strip()\n",
    "        \n",
    "        retry_count = 3\n",
    "        result = ''\n",
    "        \n",
    "        while retry_count > 0:\n",
    "            try:\n",
    "                result = judge_llm.invoke(prompt).content\n",
    "                break\n",
    "            except Exception as e:\n",
    "                retry_count -= 1\n",
    "                sleeping_seconds = 2 ** (4 - retry_count)\n",
    "                print(f\"query={question}, error={e}, sleeping={sleeping_seconds}, remaining retry count={retry_count}\")\n",
    "                \n",
    "                time.sleep(sleeping_seconds)\n",
    "        \n",
    "        results.append(result)\n",
    "\n",
    "        time.sleep(1)\n",
    "    return results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "f1410bc8-ed54-4e12-8766-51f07390e930",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T11:04:51.202606Z",
     "iopub.status.busy": "2025-03-03T11:04:51.202396Z",
     "iopub.status.idle": "2025-03-03T11:04:51.205667Z",
     "shell.execute_reply": "2025-03-03T11:04:51.205316Z",
     "shell.execute_reply.started": "2025-03-03T11:04:51.202591Z"
    }
   },
   "outputs": [],
   "source": [
    "pred_df = test_df.copy()\n",
    "pred_df = pred_df.rename(columns={'answer': 'ref_answer'})\n",
    "pred_df['gen_answer'] = answers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "4b8a36b9-23c4-4fc5-acc3-3f9576ed0b43",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T11:13:39.234724Z",
     "iopub.status.busy": "2025-03-03T11:13:39.233888Z",
     "iopub.status.idle": "2025-03-03T11:16:10.275028Z",
     "shell.execute_reply": "2025-03-03T11:16:10.272717Z",
     "shell.execute_reply.started": "2025-03-03T11:13:39.234652Z"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "317a90a77ebd41bc9321e4cbba6d273e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/93 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pred_df['raw_score'] = evaluate(pred_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "eeb59113-e628-4d52-85b5-ab3712a5bad6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T11:17:32.050546Z",
     "iopub.status.busy": "2025-03-03T11:17:32.050252Z",
     "iopub.status.idle": "2025-03-03T11:17:32.056128Z",
     "shell.execute_reply": "2025-03-03T11:17:32.055302Z",
     "shell.execute_reply.started": "2025-03-03T11:17:32.050522Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['是', '否',\n",
       "       '否\\n\\n正确答案应该是：“增加财政体系的脆弱性”。\\n\\n而助手的回答虽然提到了一些相关的后果，如加剧主权债务风险、影响金融市场稳定、投资者信心下降、资本流动不确定性增加、政府财政负担加重、潜在经济负面影响、通货膨胀压力增大或经济增长放缓，但没有直接回答到“增加财政体系的脆弱性”这一点，因此不能简单地认为是正确的。但是，助手的回答提供了更全面的分析，涵盖了国债发行力度加大可能带来的多种后果，具有一定的合理性和深度。然而，根据题目要求，我们只关注是否直接回答了参考答案中的关键点，故评价为“否”。如果考虑回答的全面性和深度，则可以认为助手的回答是正确的。但由于题目要求仅以“是”或“否”作答，所以在此情境下，评价为“否”。'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred_df['raw_score'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "1b1941d6-2ffc-4dd1-b1a6-534abe642355",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T11:17:33.580050Z",
     "iopub.status.busy": "2025-03-03T11:17:33.579259Z",
     "iopub.status.idle": "2025-03-03T11:17:33.591165Z",
     "shell.execute_reply": "2025-03-03T11:17:33.588831Z",
     "shell.execute_reply.started": "2025-03-03T11:17:33.579977Z"
    }
   },
   "outputs": [],
   "source": [
    "pred_df['score'] = (pred_df['raw_score'] == '是').astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "9b1ee922-e723-4a62-b1b0-473822ad0aa4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-03T11:17:34.214381Z",
     "iopub.status.busy": "2025-03-03T11:17:34.213539Z",
     "iopub.status.idle": "2025-03-03T11:17:34.220016Z",
     "shell.execute_reply": "2025-03-03T11:17:34.219466Z",
     "shell.execute_reply.started": "2025-03-03T11:17:34.214308Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.41935483870967744"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred_df['score'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "22d80600-a5dc-4927-93c8-2051436ad458",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
